/**
 * 将url解析成json队形
 * @url 如果有不是从location对象中获取的url，可以使用url参数传入url的字符串。
 * 返回一个json对象：
 *  url_：基础的请求地址，没有参数。
 *  其他参数。
 **/
function getSearchToJson(url) {
    var obj = {}
    var urlAll = url ? url : decodeURIComponent(location.search);
    var urlArr = urlAll.split("?")
    obj['url_'] = urlArr[0];
    if (urlArr.length !== 2) return obj;

    var searchArr = urlArr[1].split("&");
    for (let index = 0; index < searchArr.length; index++) {
        var s_ = searchArr[index].split("=");
        obj[s_[0]] = s_[1]
    }
    return obj;
}

// console.log('getSearchToJson();', getSearchToJson("?MasterKey=390c7697-b396-496c-b3a1-9e62a7ef8095&CusCode=hjlCS"))



/**
 * 将一个对象的值拼接成url
 * @obj 要拼接成查询字符串，注意，对象里面的属性值不能是对象类型，如果是对象类型，则会转换成JSON字符串再拼接
 * @pathname 传入的url，可以不传。
 **/
function setUrlforObject(obj, pathname = '') {
    if (Object.keys(obj).length === 0) return pathname;
    let search = ''
    console.log('pathname', pathname)
    pathname ? (pathname.indexOf('?') !== -1 ? (pathname.length - 1 == pathname.indexOf("?") ? search = pathname : search = pathname + "&") : search = pathname + "?") : search = "?";
    Object.keys(obj).forEach(function (item) {
        if (obj.hasOwnProperty(item) && typeof obj[item] !== "object") {
            search += item + '=' + obj[item] + '&';
        }
        if (obj.hasOwnProperty(item) && typeof obj[item] === "object") {
            search += item + '=' + JSON.stringify(obj[item]) + '&';
        }
    })
    search = search.substr(0, search.length - 1)
    return search;
}
console.log('setUrlforObject===', setUrlforObject({
    name: 'dfjei',
    age: 123,
    search: {
        address: 'djfoe',
        phone: 12345678
    },
    arr: [23,34,'djfo',{}]
}))